package per.com.dao;


import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import per.com.bean.User;

import java.util.List;

/**
 * @author zxy
 */
@Repository("PcUsersDaoId")
public interface PcUsersDao {

        int deleteByPrimaryKey(String uid);

        int insert(User record);

        int insertSelective(User record);

        User selectByPrimaryKey(String uid);

        int updateByPrimaryKeySelective(User record);

        int updateByPrimaryKey(User record);
        /**
         * 检查用户名是否存在
         * @param username
         * @return
         */
        int checkUsername(String username);

        /**
         *用户登录,检查账号和密码是否正确
         * @param username
         * @param password
         * @return
         */
        User login(@Param("username") String username , @Param("password") String password);

        User getUserById(String userId);

        /**
         * 通过用户名获取密保
         * @param username
         * @return
         */
        String getQuestion(String username);

        /**
         * 通过用户名、密保和密保答案来验证向数据库中查询，验证是否正确
         * @param username
         * @param question
         * @param answer
         * @return
         */
        int checkAnswer(@Param("username") String username , @Param("question") String question , @Param("answer") String answer);

        /**
         * 重置密码
         * @param username
         * @param passwordNew
         * @return
         */
        int restPassword(@Param("passwordNew") String passwordNew , @Param("username") String username );

        /**
         * 检查旧密码是否正确
         * @param uid
         * @param passwordOld
         * @return
         */
        int checkPassword(@Param("uid") String uid , @Param("passwordOld") String passwordOld);

        /**
         * 获取到所有用户
         * @return
         */
        List<User> selectListUser();

        /**
         * 通过用户名获取到用户
         * @param username
         * @return
         */
        User selectUser(String username);

}